// pages/getImg/getImg.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    fileList: [],
    prevent:false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  _addImg() {
    let _this = this;
    // 此方法为微信小程序自带api 详情访问https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.chooseImage.html
    wx.chooseImage({
      count: 5,
      success(res) {
        //此处会返回图片暂存路径和文件大小
        const data = res.tempFiles;
        _this.setFile(data)
      }
    })
  },
  setFile (data) {
    // 将wx.chooseImage返回的数据进行扩展
    data.map((item, index) => {
      // 通过路径截取文件后缀名
      const fileFormat = item.path.substring(item.path.lastIndexOf(".") + 1, item.path.length);
      // wx.getFileSystemManager()小程序文件管理器api，可以将通过文件路径将其转换成64编码
      const fileManager = wx.getFileSystemManager();
      const base64 = fileManager.readFileSync(item.path, 'base64');
      item.fileContent = base64;
      item.fileSize = item.size;
      // 通过时间获取随机13位随机数并且拼接文件后缀进行文件命名
      item.fileName = this.getFileName(13) + '.' + fileFormat;
      // 此处操作是用来进行选中图片显示的，只有这样拼接才能显示base64编码的路径
      item.path = `data:image/${fileFormat};base64,${base64}`;;
    })
    this.setData({ 
      fileList: this.data.fileList.concat(data)
    });
    // 此处操作是用来将获取到的文件数据传递给父组件进行文件上传
    this.triggerEvent('imageChange', this.data.fileList)
  },
  // 随机生成文件名
  getFileName (m) {
    m = m > 13 ? 13 : m;
    var num = new Date().getTime();
    return num.toString().substring(13 - m);
  },
  //点击进行图片删除
  _onDelTab(e) {
    // 获取图片索引
    let idx = e.currentTarget.dataset.idx;
    let delFile = this.data.fileList[idx];
    this.data.fileList.splice(idx, 1);
    this.setData({
      fileList: this.data.fileList
    })
    this.triggerEvent('imageDel', delFile);
  },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})